#ifndef BASICOBJECT_H_
#define BASICOBJECT_H_

#include <nvMatrix.h>
#include <nvVector.h>
#include <nvQuaternion.h>

/*namespace nv{
	template <class T> class matrix4;
	template <class T> class quaternion;
	template <class T> class vec4;
}*/

class TransformObject{

public:


	TransformObject();
	//TransformObject(float *t);

	~TransformObject(){
		// ...

	}

	nv::matrix4<float> getLocalTransform(){
		return m_transform;
	}

	void multToGL();

	void move(const nv::vec3f &dPos);
	void rotate(float headingDegrees, float pitchDegrees);
	void Set(const nv::vec3f &eye, const nv::vec3f &target, const nv::vec3f &up);

	float getPitch();
	float getHeading();



	nv::vec3f	m_position;
	nv::quatf	m_rotation;

private:

	float pitch, heading;

	nv::mat4f 	m_transform;



};



#endif /* BASICOBJECT_H_ */
